home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / distutils / versionpredicate.pyo (.txt) < prev   
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  75 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import re
  5. import distutils.version as distutils
  6. import operator
  7. re_validPackage = re.compile('(?i)^\\s*([a-z_]\\w*(?:\\.[a-z_]\\w*)*)(.*)')
  8. re_paren = re.compile('^\\s*\\((.*)\\)\\s*$')
  9. re_splitComparison = re.compile('^\\s*(<=|>=|<|>|!=|==)\\s*([^\\s,]+)\\s*$')
  10.  
  11. def splitUp(pred):
  12.     res = re_splitComparison.match(pred)
  13.     if not res:
  14.         raise ValueError('bad package restriction syntax: %r' % pred)
  15.     
  16.     (comp, verStr) = res.groups()
  17.     return (comp, distutils.version.StrictVersion(verStr))
  18.  
  19. compmap = {
  20.     '<': operator.lt,
  21.     '<=': operator.le,
  22.     '==': operator.eq,
  23.     '>': operator.gt,
  24.     '>=': operator.ge,
  25.     '!=': operator.ne }
  26.  
  27. class VersionPredicate:
  28.     
  29.     def __init__(self, versionPredicateStr):
  30.         versionPredicateStr = versionPredicateStr.strip()
  31.         if not versionPredicateStr:
  32.             raise ValueError('empty package restriction')
  33.         
  34.         match = re_validPackage.match(versionPredicateStr)
  35.         if not match:
  36.             raise ValueError('bad package name in %r' % versionPredicateStr)
  37.         
  38.         (self.name, paren) = match.groups()
  39.         paren = paren.strip()
  40.  
  41.     
  42.     def __str__(self):
  43.         pass
  44.  
  45.     
  46.     def satisfied_by(self, version):
  47.         for cond, ver in self.pred:
  48.             if not compmap[cond](version, ver):
  49.                 return False
  50.                 continue
  51.         
  52.         return True
  53.  
  54.  
  55. _provision_rx = None
  56.  
  57. def split_provision(value):
  58.     global _provision_rx
  59.     if _provision_rx is None:
  60.         _provision_rx = re.compile('([a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*)(?:\\s*\\(\\s*([^)\\s]+)\\s*\\))?$')
  61.     
  62.     value = value.strip()
  63.     m = _provision_rx.match(value)
  64.     if not m:
  65.         raise ValueError('illegal provides specification: %r' % value)
  66.     
  67.     if not m.group(2):
  68.         pass
  69.     ver = None
  70.     if ver:
  71.         ver = distutils.version.StrictVersion(ver)
  72.     
  73.     return (m.group(1), ver)
  74.  
  75.